SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[pje_porPublicacionDeLibros] @idInscripcion integer, @pje float output, @resultado as integer output AS
SET NOCOUNT ON
declare @topePublicacionLibros as float
declare  @idAgente as int,@CargoGenerico as int,@AsignaturaGenerica as int, @idTipoConvocatoria as int ,@fechaLimite as datetime
declare @sum as float
declare @grupoIncumbencia as int,@grupoIncumbencia2 as int, @nivel_insc as int,@ciclo as int
DECLARE @Error INT
declare @cantpublicacion float
declare @Pjeunicoautorfilosofico float
declare @Pjecolaboradorautorfilosofico float

BEGIN TRANSACTION
SET @ERROR=0

--select @topePublicacionLibros= (select valor1 from tb_parametros where idparametro=33) --idparametro=33 corresponde al tope por publicación de libros

select  @idAgente=i.Agente,@cargoGenerico = i.CargoGenerico,@AsignaturaGenerica=i.AsignaturaGenerica,@idtipoConvocatoria=Conv.TipoConvocatoria,@FechaLimite=Conv.FechaLimite,@nivel_insc = i.nivel,@ciclo=ciclo
	from 
	tb_inscripcionesConvocatorias i 
		join tb_Convocatorias conv on i.Convocatoria=conv.idConvocatoria 
	where i.idInscripcionConvocatoria=@idInscripcion

--if @nivel_insc = 3 and @ciclo = 2 set  @nivel_insc=4

/*select @grupoIncumbencia=case
	when @nivel_insc = 2 then 572
	when @nivel_insc = 3 then 573
	when @nivel_insc = 4 then 571
end

select @grupoIncumbencia2=case
	when @nivel_insc = 2 then 570
	when @nivel_insc = 3 then 570
	when @nivel_insc = 4 then 571
end
print 'incumbencia' + cast (@grupoIncumbencia as varchar )


if  @idTipoConvocatoria  in (1,2,3,4,5,9)  --   TipoConvocatoria = 1 ingreso,interinatos y suplencias
begin

	declare c cursor FORWARD_ONLY FOR
	select 
		  isnull (sum(PuntajeParaIncumbencias),0)  puntaje 
	from tb_antecedentes a 
		join tb_tiposAntecedentes t on a.tipo=t.idtipoantecedente 
		join tb_gruposDeIncumbencias G on G.idGrupoIncumbencia=a.GrupoIncumbencias
--		join tb_reluniongsgu R on r.idgrupounion = G.idGrupoIncumbencia
		join tb_incumbencias h on G.idGrupoincumbencia=h.grupoIncumbencia
    	         where a.rubro=18  and agente=@idagente and h.CargoGenerico=@Cargogenerico and h.AsignaturaGenerica=@AsignaturaGenerica and a.FechaPresentacion <= @FechaLimite
		--and (G.IDgrupoIncumbencia= @grupoIncumbencia or G.IDgrupoIncumbencia= @grupoIncumbencia2 or G.IDgrupoIncumbencia=99)--sumo todos los libros que tiene el agente

		SET @Error = @@ERROR 
		IF @Error <> 0 GOTO Salir

	open c
	fetch next from c into @sum

	set @pje=0

	while @@FETCH_STATUS = 0
	begin
			set @pje=@pje+@sum
			fetch next from c into @sum
	end

	close c
	deallocate c

	if @pje > @topePublicacionLibros  set @pje=@topePublicacionLibros
	print @pje
end
*/

-- AUTOR DE PUBLICACIONES EN LIBROS FILOSOFICOS- CIENTIFICOS O ARTISTICO
if((select count(*) from tb_antecedentes a where a.agente=@idagente)>0)
	begin 
		set @cantpublicacion = (select count(*) from tb_antecedentes a inner join tb_tiposantecedentes ta 
		on a.tipo=ta.idtipoantecedente where a.agente=@idagente and ta.codigosecundaria='040105i')
		select @Pjeunicoautorfilosofico= (@cantpublicacion * 0.500)
		if(@Pjeunicoautorfilosofico > 3)
			BEGIN 
				set @Pjeunicoautorfilosofico=3
			END
	END

-- COLABORADOR DE PUBLICACIONES EN LIBROS FILOSOFICO- CIENTIFICO O ARTISTICO
if((select count(*) from tb_antecedentes a where a.agente=@idagente)>0)
	begin 
		set @cantpublicacion = (select count(*) from tb_antecedentes a inner join tb_tiposantecedentes ta 
		on a.tipo=ta.idtipoantecedente where a.agente=@idagente and ta.codigosecundaria='040105C')
		select @Pjecolaboradorautorfilosofico= (@cantpublicacion * 0.250)
		if(@Pjeunicoautorfilosofico > 3)
			BEGIN 
				set @Pjecolaboradorautorfilosofico=3
			END
	END
print @Pjeunicoautorfilosofico
print @Pjecolaboradorautorfilosofico



Set @Pje= @Pje + (@Pjeunicoautorfilosofico + @Pjecolaboradorautorfilosofico)

Salir:
IF @Error <> 0 
	ROLLBACK TRANSACTION
ELSE 
	COMMIT TRANSACTION
GO
GRANT EXECUTE ON  [dbo].[pje_porPublicacionDeLibros] TO [Juntas]
GO
